#  Copyright (c) 2014-present, Facebook, Inc.
#  All rights reserved.
#
#  This source code is licensed as defined on the LICENSE file found in the
#  root directory of this source tree.

load("//tools/build_defs/oss/osquery:cxx.bzl", "osquery_cxx_library", "osquery_cxx_test")
load("//tools/build_defs/oss/osquery:native.bzl", "osquery_target")

osquery_cxx_test(
    name = "config_tests",
    srcs = [
        "config_tests.cpp",
    ],
    env = {
        "TEST_CONF_FILES_DIR": "$(location {})".format(
            osquery_target("tools/tests/configs:conf_files"),
        ),
    },
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config:config"),
        osquery_target("osquery/dispatcher:dispatcher"),
        osquery_target("osquery/events:events"),
        osquery_target("osquery/extensions:extensions"),
        osquery_target("osquery/extensions:impl_thrift"),
        osquery_target("osquery/filesystem:mock_file_structure"),
        osquery_target("osquery/registry:registry"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/utils/system:time"),
        osquery_target("plugins/config:tls_config"),
        osquery_target("plugins/database:ephemeral"),
        osquery_target("specs:tables"),
        ":test_utils",
    ],
)

osquery_cxx_test(
    name = "packs",
    srcs = [
        "packs.cpp",
    ],
    env = {
        "TEST_CONF_FILES_DIR": "$(location {})".format(
            osquery_target("tools/tests/configs:conf_files"),
        ),
    },
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config:config"),
        osquery_target("osquery/dispatcher:dispatcher"),
        osquery_target("osquery/events:events"),
        osquery_target("osquery/extensions:extensions"),
        osquery_target("osquery/extensions:impl_thrift"),
        osquery_target("osquery/filesystem:mock_file_structure"),
        osquery_target("osquery/registry:registry"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/utils/system:time"),
        osquery_target("plugins/config:tls_config"),
        osquery_target("plugins/database:ephemeral"),
        osquery_target("specs:tables"),
        ":test_utils",
    ],
)

osquery_cxx_library(
    name = "test_utils",
    srcs = [
        "test_utils.cpp",
    ],
    header_namespace = "osquery/config/tests",
    exported_headers = [
        "test_utils.h",
    ],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/filesystem:osquery_filesystem"),
        osquery_target("osquery/utils/json:json"),
        osquery_target("osquery/utils/system:env"),
    ],
)
